ecsign を使用してメッセージに署名する
piyopiyo! というメッセージに ecsign を使用して署名をする例を紹介します。
署名の手順
2. ecsign を使用して、メッセージのハッシュに署名をします。
アウトプット
署名により、署名の検証に必要な値 r, s, v を得ることができます。
サンプルコード
code:example.js
const EthUtil = require('ethereumjs-util')
// 秘密鍵の文字列
const PRIVATE_KEY_STRING = '0x61ce8b95ca5fd6f55cd97ac60817777bdf64f1670e903758ce53efc32c3dffeb'
// メッセージ
const MSG = "piyopiyo!"
// 秘密鍵の文字列からバッファを取得
const privateKey = EthUtil.toBuffer(PRIVATE_KEY_STRING)
// メッセージ の Keccak ハッシュを得ます。
const msgHash = EthUtil.sha3(MSG)
console.log(EthUtil.bufferToHex(msgHash))
// => 0xb826be27896975a66f168f81f553fe0b2f87599d63d01c3b93c1a8a6f2243e5d
// ecsign を使用してメッセージのハッシュに署名します。
const signedMsg = EthUtil.ecsign(msgHash, privateKey)
// r
console.log(EthUtil.bufferToHex(signedMsg.r))
// => 0xdd7fa0d0b259468434cf14760c6607f36f2d7429feaaaedf6d86265c11098d20
// s
console.log(EthUtil.bufferToHex(signedMsg.s))
// => 0x14cf83d2204e50b12fcb2445a70c214509d0f4edf0e0ee6e8d18fed8fbb146c0
// v
console.log(signedMsg.v)
// => 27
関連
JavaScript を使用して署名を検証する方法はこちら
Solidity を使用して署名を検証する方法はこちら